package com.example.hdwx.myapplication.untils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.widget.ImageView;

import com.example.hdwx.myapplication.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 图片下载的工具类
 */
public class UniversalImage {

    static ImageLoader imageLoader;
    public static void image(Context context,String url,ImageView imageView){
        //获取ImageLoader对象
        imageLoader = ImageLoader.getInstance();
        //设置图片的储存目录
        File file = StorageUtils.getOwnCacheDirectory(context, "mnt/sdcard");
        //配置ImageLoader信息
        ImageLoaderConfiguration builder = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(200,160)
                .threadPoolSize(7)
                .denyCacheImageMultipleSizesInMemory()
                .memoryCacheSize(5*1024*1024)
                .discCache(new UnlimitedDiscCache(file))
                .discCacheFileCount(500)
                .imageDownloader(new BaseImageDownloader(context,5000,10000))
                .build();
        //初始化imageLoader
        imageLoader.init(builder);

        //设置下载图片的配置信息
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher)//设置下载图片前显示的默认图片
                .showImageOnFail(R.mipmap.ic_launcher)//设置下载失败后要显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//下载图片的uri为空或者错误的时候要显示的图片
                .cacheInMemory(true)//设置下载的图片通过内存缓存进行存储
                .cacheOnDisc(true)//设置下载的图片通过外部存储缓存
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片缩放格式
                .resetViewBeforeLoading(true)//设置图片在下载前是否重置，复位
                .build();

        //执行图片下载
        imageLoader.displayImage(url,imageView,options);
    }

    public static Bitmap netPicToBmp(String src) {
        try {
            URL url = new URL(src);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(input);
            Log.e("log","============="+bitmap);
            return bitmap;
        } catch (IOException e) {
            return null;
        }
    }
}
